package com.hzhr.iot.collect.constant.entity.constant;


import com.hzhr.iot.collect.constant.entity.FunctiontmpEntity;

import java.util.HashMap;
import java.util.Map;

public class FunctiontmpEntityConstant {
	public static Map<Integer, FunctiontmpEntity> MAP = new HashMap<Integer, FunctiontmpEntity>() {
		private static final long serialVersionUID = 1L;

		{
			putAll(getEntityMap(getEntity(1, "WTCU采集信息自醒上报", "WTCU采集信息自醒上报", 10000071)));
			putAll(getEntityMap(getEntity(2, "WTCU注册", "WTCU注册", 10000071)));
			putAll(getEntityMap(getEntity(3, "WTCU主站IP设置", "WTCU主站IP设置", 10000060)));
			putAll(getEntityMap(getEntity(4, "WTCU主站IP查询", "WTCU主站IP查询", 10000060)));
			putAll(getEntityMap(getEntity(5, "WTCU自醒上报时间设置", "WTCU自醒上报时间设置", 10000060)));
			putAll(getEntityMap(getEntity(6, "WTCU自醒上报时间查询", "WTCU自醒上报时间查询", 10000060)));
			putAll(getEntityMap(getEntity(7, "WTCU开阀", "WTCU开阀", 10000060)));
			putAll(getEntityMap(getEntity(8, "WTCU关阀", "WTCU关阀", 10000060)));
			putAll(getEntityMap(getEntity(9, "WTCU表具信息主动上报", "WTCU表具信息主动上报", 10000071)));
			putAll(getEntityMap(getEntity(10, "NBIOT 物联网表上报周期设置", "NBIOT 物联网表上报周期设置", 10000060)));
			putAll(getEntityMap(getEntity(11, "NBIOT 物联网表上报周期查询", "NBIOT 物联网表上报周期查询", 10000060)));
			putAll(getEntityMap(getEntity(12, "NBIOT 物联网表冻结日设置", "NBIOT 物联网表冻结日设置", 10000060)));
			putAll(getEntityMap(getEntity(13, "NBIOT 物联网表冻结日查询", "NBIOT 物联网表冻结日查询", 10000060)));
			putAll(getEntityMap(getEntity(14, "NBIOT 物联网表日用量历史查询", "NBIOT 物联网表日用量历史查询", 10000060)));
			putAll(getEntityMap(getEntity(15, "NBIOT 物联网表月用量历史查询", "NBIOT 物联网表月用量历史查询", 10000060)));
			putAll(getEntityMap(getEntity(16, "NBIOT 物联网表异常事件上传", "NBIOT 物联网表异常事件上传", 10000071)));
			putAll(getEntityMap(getEntity(17, "NBIOT 物联网表故障信息清除指令", "NBIOT 物联网表故障信息清除指令", 10000060)));
			putAll(getEntityMap(getEntity(18, "NBIOT 物联网表异常事件查询", "NBIOT 物联网表异常事件查询", 10000060)));
			putAll(getEntityMap(getEntity(19, "NBIOT 允许开阀", "NBIOT 允许开阀", 10000060)));
			putAll(getEntityMap(getEntity(20, "NB-IoT燃气表累积用量查询", "NB-IoT燃气表累积用量查询", 10000060)));

			putAll(getEntityMap(getEntity(21, "DTU 登录包", "DTU 登录包", 10000071)));
			putAll(getEntityMap(getEntity(22, "DTU 生产通讯测试", "DTU 生产通讯测试", 10000071)));
			putAll(getEntityMap(getEntity(23, "DTU 通信测试", "DTU 通信测试", 10000071)));
			putAll(getEntityMap(getEntity(24, "DTU 心跳包", "DTU 心跳包", 10000071)));
			putAll(getEntityMap(getEntity(25, "DTU 心跳周期设置", "DTU 心跳周期设置", 10000060)));
			putAll(getEntityMap(getEntity(26, "DTU 心跳周期查询", "DTU 心跳周期查询", 10000060)));
			putAll(getEntityMap(getEntity(27, "DTU 时钟设置", "DTU 时钟设置", 10000071)));
			putAll(getEntityMap(getEntity(28, "DTU 时钟查询", "DTU 时钟查询", 10000060)));
			putAll(getEntityMap(getEntity(29, "DTU 采集频率设置", "DTU 采集频率设置", 10000060)));
			putAll(getEntityMap(getEntity(30, "DTU 采集频率查询", "DTU 采集频率查询", 10000060)));
			putAll(getEntityMap(getEntity(31, "DTU 上报时间设置", "DTU 上报周期设置", 10000060)));
			putAll(getEntityMap(getEntity(32, "DTU 上报时间查询", "DTU 上报周期查询", 10000060)));
			putAll(getEntityMap(getEntity(33, "DTU 表具时钟设置", "DTU 表具时钟设置", 10000060)));
			putAll(getEntityMap(getEntity(34, "DTU 表具时钟查询", "DTU 表具时钟查询", 10000060)));
			putAll(getEntityMap(getEntity(35, "DTU 单表抄表", "DTU 单表抄表", 10000060)));
			putAll(getEntityMap(getEntity(36, "DTU 主动上报", "DTU 主动上报", 10000071)));
			putAll(getEntityMap(getEntity(37, "DTU 单表开阀", "DTU 单表开阀", 10000060)));
			putAll(getEntityMap(getEntity(38, "DTU 单表关阀", "DTU 单表关阀", 10000060)));
			putAll(getEntityMap(getEntity(39, "DTU 阀门状态查询", "DTU 阀门状态查询", 10000060)));
			putAll(getEntityMap(getEntity(40, "DTU 表具异常事件上传", "DTU 表具异常事件上传", 10000071)));
			putAll(getEntityMap(getEntity(41, "DTU 异常事件清除", "DTU 异常事件清除", 10000060)));

			putAll(getEntityMap(getEntity(42, "压力监测仪 注册", "压力监测仪 注册", 10000071)));
			putAll(getEntityMap(getEntity(43, "压力监测仪 请求更新运行参数", "压力监测仪 请求更新运行参数", 10000060)));
			putAll(getEntityMap(getEntity(44, "压力监测仪 主站 IP 设置", "压力监测仪 主站 IP 设置", 10000060)));
			putAll(getEntityMap(getEntity(45, "压力监测仪 密钥更新", "压力监测仪 密钥更新", 10000060)));
			putAll(getEntityMap(getEntity(46, "压力监测仪 设置设备编号", "压力监测仪 设置设备编号", 10000060)));
			putAll(getEntityMap(getEntity(47, "压力监测仪 设置报警阈值", "压力监测仪 设置报警阈值", 10000060)));
			putAll(getEntityMap(getEntity(48, "压力监测仪 设置采样频率", "压力监测仪 设置采样频率", 10000060)));
			putAll(getEntityMap(getEntity(49, "压力监测仪 设置上报周期", "压力监测仪 设置上报周期", 10000060)));
			putAll(getEntityMap(getEntity(50, "压力监测仪 设置自醒时间", "压力监测仪 设置自醒时间", 10000060)));
			putAll(getEntityMap(getEntity(51, "压力监测仪 参数查询", "压力监测仪 参数查询", 10000060)));
			putAll(getEntityMap(getEntity(52, "压力监测仪 昨日历史数据查询", "压力监测仪 昨日历史数据查询", 10000060)));
			putAll(getEntityMap(getEntity(53, "压力监测仪 自动上报", "压力监测仪 自动上报", 10000071)));
			putAll(getEntityMap(getEntity(54, "压力监测仪 手动上报", "压力监测仪 手动上报", 10000071)));
			putAll(getEntityMap(getEntity(55, "压力监测仪 压力监测仪异常事件上传", "压力监测仪 压力监测仪异常事件上传", 10000071)));
			putAll(getEntityMap(getEntity(56, "压力监测仪 压力监测仪异常信息清除指令", "压力监测仪 压力监测仪异常信息清除指令", 10000060)));
			putAll(getEntityMap(getEntity(57, "压力监测仪 压力监测仪异常事件查询", "压力监测仪 压力监测仪异常事件查询", 10000060)));

			putAll(getEntityMap(getEntity(58, "集中器 心跳包", "集中器 心跳包", 10000071)));
			putAll(getEntityMap(getEntity(59, "集中器 注册包", "集中器 注册包", 10000071)));
			putAll(getEntityMap(getEntity(60, "集中器 集中器心跳周期设置", "集中器 集中器心跳周期设置", 10000060)));
			putAll(getEntityMap(getEntity(61, "集中器 集中器心跳周期查询", "集中器 集中器心跳周期查询", 10000060)));
			putAll(getEntityMap(getEntity(62, "集中器 集中器时钟设置", "集中器 集中器时钟设置", 10000060)));
			putAll(getEntityMap(getEntity(63, "集中器 集中器时钟查询", "集中器 集中器时钟查询", 10000060)));
			putAll(getEntityMap(getEntity(64, "集中器 单表实时抄表", "集中器 单表实时抄表", 10000060)));
			putAll(getEntityMap(getEntity(65, "集中器 单表开阀", "集中器 单表开阀", 10000060)));
			putAll(getEntityMap(getEntity(66, "集中器 单表关阀", "集中器 单表关阀", 10000060)));
			putAll(getEntityMap(getEntity(67, "集中器 阀门状态查询", "集中器 阀门状态查询", 10000060)));

			putAll(getEntityMap(getEntity(68, "NB-IoT 燃气表设备编号设置", "NB-IoT 燃气表设备编号设置", 10000060)));

			putAll(getEntityMap(getEntity(69, "DTU 表具初始值与脉冲当量设置", "DTU 表具初始值与脉冲当量设置", 10000060)));
			putAll(getEntityMap(getEntity(70, "DTU 表具初始值与脉冲当量查询", "DTU 表具初始值与脉冲当量查询", 10000060)));

			putAll(getEntityMap(getEntity(71, "集中器 增加下级智能表", "集中器 增加下级智能表", 10000060)));
			putAll(getEntityMap(getEntity(72, "集中器 删除下级智能表", "集中器 删除下级智能表", 10000060)));
			putAll(getEntityMap(getEntity(73, "集中器 下级表具查询", "集中器 下级表具查询", 10000060)));
			putAll(getEntityMap(getEntity(74, "集中器 获取集抄数据", "集中器 获取集抄数据", 10000060)));
			putAll(getEntityMap(getEntity(77, "集中器 集中器重启", "集中器 集中器重启", 10000060)));
			putAll(getEntityMap(getEntity(86, "集中器 集中器异常事件上传", "集中器 集中器异常事件上传", 10000071)));
			putAll(getEntityMap(getEntity(87, "集中器 表具异常事件上传", "集中器 表具异常事件上传", 10000071)));

		}
	};

	public static FunctiontmpEntity getById(Integer id) {
		if (id == null) return null;
		Map<Integer, FunctiontmpEntity> map = MAP;
		for (Map.Entry<Integer, FunctiontmpEntity> entry : map.entrySet()) {
			FunctiontmpEntity functiontmpEntity = entry.getValue();
			if (functiontmpEntity.getId() == id) return  functiontmpEntity;
		}
		return null;
	}

	private static FunctiontmpEntity getEntity(Integer id, String name, String des, Integer starter) {
		FunctiontmpEntity functiontmpEntity = new FunctiontmpEntity();
		functiontmpEntity.setId(id);
		functiontmpEntity.setName(name);
		functiontmpEntity.setDes(des);
		functiontmpEntity.setStarter(starter);
		return functiontmpEntity;
	}
	
	private static Map<Integer, FunctiontmpEntity> getEntityMap(FunctiontmpEntity messagefieldEntity) {
		Map<Integer, FunctiontmpEntity> map = new HashMap<>();
		map.put(messagefieldEntity.getId(), messagefieldEntity);
		return map;
	}
}
